import Vue from 'vue'
import Vuex from 'vuex'
import { getStorage, setStorage } from '@/utils/storage'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // 登录相关的信息
    loginData: getStorage('loginData'),

    // cookie
    cookie: getStorage('cookie'),

    // 账号信息
    account: getStorage('account'),

    // 正在播放的歌单
    playingSongList: [],

    // 播放歌曲的对象
    playedSongObj: {
      al: {
        picUrl: false
      }
    },

    // 播放歌曲的 index
    playedSongIndex: -1,

    // 播放歌曲的 id
    playedSongId: null,

    // audio DOM
    audio: null,

    // 正在播放歌曲的 % 进度
    step: 0,

    // 歌曲缓冲的 % 进度
    bufferBrogressBar: 0,

    // 正在播放歌曲的倒计时
    countDown: 0,

    // 歌曲的播放状态
    isPlayStatus: false
  },
  mutations: {
    // 修改登录相关的信息
    setLoginData (state, data) {
      state.loginData = data
      setStorage('loginData', data)
    },

    setAccount (state, data) {
      state.account = data
      setStorage('account', data)
    },
    setCookie (state, data) {
      state.cookie = data
      setStorage('cookie', data)
    },

    // 修改正在播放中的歌单
    setPlayingSongList (state, data) {
      state.playingSongList = []
      state.playingSongList.push(...data)
    },

    // 修改播放歌曲对象
    setPlayedSongObj (state, data) {
      state.playedSongObj = data
    },

    // 修改播放歌曲的 index
    setPlayedSongIndex (state, data) {
      state.playedSongIndex = data
    },

    // 修改播放歌曲的 id
    setPlayedSongId (state, data) {
      state.playedSongId = data
    },

    // audio DOM
    setAudio (state, data) {
      state.audio = data
    },

    // 修正正在播放歌曲的进度
    setStep (state, data) {
      state.step = data
    },

    // 修改歌曲缓冲的 % 进度
    setBufferBrogressBar (state, data) {
      state.bufferBrogressBar = data
    },

    // 修改正在播放歌曲的倒计时
    setCountDown (state, data) {
      state.countDown = data
    },

    // 修改歌曲的播放状态
    setPlayStatus (state, data) {
      state.isPlayStatus = data
    }
  },
  actions: {
  },
  modules: {
  }
})
